
//this的方法
//1.可以通过this访问当前对象的成员变量
//2.可以通过this访问当前对象的非静态的成员方法
//3.可以通过this访问当前对象的其他构造方法

public class Date {

    //普通方法：
    // 返回值  方法名 （形参）{
    //
    //      方法体
    // }
//    构造方法：
//        方法名  （形参）{
//
//        方法体
//    }

    //构造方法
    public Date(){
        System.out.println("这个是不带参数的构造方法.......");
    }

    public int year;
    public int month;
    public int day;


    //this 是指对当前对象的引用
    //以后写自己的方法的时候，只要是访问自己的成员和自己的变量的时候，都要加上this
    //this引用的是调用成员方法的对象
    public void setDate(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }

    public void printDate(){
        System.out.println(this.year+" 年"+this.month+" 月"+this.day+" 日");
        this.test1();
    }

    public void test1(){
        System.out.println("测试一下test.......");
    }
    public static void main(String[] args) {

                    //可以执行构造方法
        Date date=new Date();
        //谁调用了setDate，那么setDate中的this就代表谁
        //date对象调用了setDate,那么setDate中的this就代表date（看date和this的地址，调试代码）


        //this引用的是调用成员方法的对象（date），地址一样
        date.setDate(2008,8,8);    //this 是指对当前对象的引用
        date.printDate();

        Date date2=new Date();
        //date2对象调用了setDate,那么setDate中的this就代表date2
        date2.setDate(2009,9,9);

        //成员变量的访问成员方法的访问，都是需要通过对象的引用（加.号）来访问的
        //date2是通过类Dog来创建的一个对象，如果要对date2里面的成员变量和成员方法
        //进行访问，需要加.号
        date2.printDate();

        Date date3=new Date();
        //date3对象调用了setDate,那么setDate中的this就代表date3
        date3.setDate(2010,10,10);
        date3.printDate();
    }
}
